home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Nordlicht Spiele / Nordlicht Spiele 24-08 (19xx)(Nordlicht)(DE)(PD).zip / Nordlicht Spiele 24-08 (19xx)(Nordlicht)(DE)(PD).adf / Pacman-ASC < prev    next >
Text File  |  1993-07-13  |  15KB  |  411 lines

  1. '
  2. ' Pacmans return source code by Tony Brice (c) 1993.
  3. '
  4. ' Remember to load all the system files before attempting to run
  5. ' this game. See Read-me file for more information.
  6. '
  7. ' 13th July 1993.
  8. '
  9. SETUP:
  10. Curs Off : Flash Off : Cls 0 : Hide 
  11. Reserve As Work 2,4320 : Load "df0:map-data.work",2
  12. FF$="ABCDEFGHIJKLMNOPQRST" : SMAP=1 : SM=1 : SOUND=1 : STYLE=0
  13. Dim HI(5),HI$(5) : For T=5 To 1 Step -1 : HI(T)=11000-(T*2000) : Next T
  14. For T=5 To 1 Step -1 : Read HI$(T) : Next T
  15. Data "ANON","CARL","GARY","LEE!","TONY"
  16. Dim MAPDATA(13,19),GHOST(3,5),EX(3),EY(3),EXD(3),EYD(3),CD(4),MUS(7)
  17. For T=1 To 4 : Read CD(T) : Next T
  18. Data 3,1,4,2
  19. For T=1 To 7 : Read MUS(T) : Next T
  20. Data 5,5,6,6,7,7,8
  21. Screen Open 0,320,200,32,Lowres : Flash Off : Screen Hide 0 : Unpack 6 To 0
  22. TITLE:
  23. Screen Show 0 : Screen 0 : Paper 0 : Pen 1 : Screen Display 0,,45,,
  24. ST=0 : SS=0 : MM=1 : Music 1
  25. Locate 2,2 : Print "Skill :              Maps :"
  26. Locate 2,3 : Print "Style of game :"
  27. Locate 2,5 : Print "S- save : L- load : R- Reset scores" : Gosub SEESET
  28. BEGIN:
  29. Gosub CREDITS
  30. If ST=1 Then Goto GO
  31. Gosub CLEARBOX : Gosub HISC
  32. If ST=1 Then Goto GO
  33. Gosub CLEARBOX : Gosub CRED
  34. If ST=1 Then Goto GO
  35. Gosub CLEARBOX : Gosub BSL
  36. If ST=1 Then Goto GO
  37. Gosub CLEARBOX : Gosub MESSAGE
  38. If ST=1 Then Goto GO
  39. Gosub CLEARBOX : Goto BEGIN
  40. SVSC:
  41. Open Out 1,"pac.score"
  42. For T=1 To 5 : Print #1,HI(T) : Print #1,HI$(T) : Next T
  43. Close 1 : Return 
  44. LDSC:
  45. Open In 1,"pac.score"
  46. For T=1 To 5 : Input #1,HI(T) : Input #1,HI$(T) : Next T
  47. Close 1 : Return 
  48. KEYCHECK:
  49. A$=Inkey$ : If Fire(1) Then ST=1
  50. If A$="f" Then SS=1
  51. If A$="l" Then Gosub LDSC : SS=1
  52. If A$="s" Then Gosub SVSC
  53. If A$="r" Then For T=1 To 5 : HI(T)=1000 : HI$(T)="NONE" : Next T : SS=1
  54. If A$="m" Then Gosub MUSCHECK
  55. If A$="q" Then Music Off : Screen Close 0 : Edit 
  56. If A$="C" Then CHEAT=1-CHEAT : Gosub SEESET
  57. If Joy(1)=1 Then SKILL=1-SKILL : Gosub SEESET
  58. If Joy(1)=2 Then SKILL=1-SKILL : Gosub SEESET
  59. If Joy(1)=4 Then SMAP=SMAP+10 : Gosub SEESET
  60. If Joy(1)=8 Then STYLE=1-STYLE : Gosub SEESET
  61. Return 
  62. SEESET:
  63. Pen 2 : If SMAP>11 Then SMAP=1
  64. If CHEAT=0 Then Locate 17,4 : Print "     ";
  65. If SMAP=11 Then Locate 30,2 : Print "Custom ";
  66. If SMAP=1 Then Locate 30,2 : Print "Default";
  67. If CHEAT=1 Then Locate 17,4 : Print "CHEAT";
  68. If STYLE=0 Then Locate 18,3 : Print "Arcade";
  69. If STYLE=1 Then Locate 18,3 : Print "Normal";
  70. If SKILL=0 Then Locate 10,2 : Print "Easy";
  71. If SKILL=1 Then Locate 10,2 : Print "Hard";
  72. For K=1 To 5000 : Next K
  73. Return 
  74. HISC:
  75. Locate 15,9 : Pen 2 : Paper 0 : Print "Top Scores"
  76. Locate 15,10 : Pen 4 : Print "----------"
  77. For T=5 To 1 Step -1 : Locate 13,11+T : Pen T+2
  78. Print T;HI(T);" ";HI$(T)
  79. Next T : T=0 : CN=1
  80. HILOOP:
  81. T=T+1 : For G=24 To 31 : Pen G : Locate 14,12 : Print "1";HI(1);" ";HI$(1)
  82. Gosub KEYCHECK : For X=1 To 200 : Next X : Next G : If ST=1 Then Return 
  83. If SS=1 Then SS=0 : Return 
  84. For G=31 To 24 Step -1 : Pen G : Locate 14,12 : Print "1";HI(1);" ";HI$(1)
  85. Gosub KEYCHECK : For X=1 To 200 : Next X : Next G : Gosub ANI : If ST=1 Then Return 
  86. If SS=1 Then SS=0 : Return 
  87. If T<20 Then Goto HILOOP
  88. Return 
  89. ANI:
  90. CN=CN+1 : If CN>4 Then CN=1
  91. Bob 1,95,90,CD(CN) : Bob 2,210,90,CD(CN) : Return 
  92. BSL:
  93. Pen 5 : Locate 14,10 : Print "      A"
  94. Pen 4 : Locate 14,12 : Print "BINARY SYSTEMS"
  95. Pen 12 : Locate 14,14 : Print "  PRODUCTION"
  96. Pen 14 : Locate 14,16 : Print "   (C) 1993" : T=1
  97. BLOOP:
  98. T=T+1 : If T>2000 Then Return 
  99. Gosub KEYCHECK : If ST=1 Then Return 
  100. If SS=1 Then SS=0 : Return 
  101. Goto BLOOP
  102. CRED:
  103. Pen 4 : Locate 14,10 : Print "Playtesting by"
  104. Pen 12 : Locate 14,12 : Print " Lee Stothers"
  105. Pen 15 : Locate 14,14 : Print " Gary Pearce"
  106. Pen 17 : Locate 14,16 : Print "& Carl Manley"
  107. CLOOP:
  108. T=T+1 : If T>3000 Then Return 
  109. Gosub KEYCHECK : If ST=1 Then Return 
  110. If SS=1 Then SS=0 : Return 
  111. Goto CLOOP
  112. MESSAGE:
  113. Locate 12,10 : Pen 5 : Print "F to Fastforward" : Z=220 : ZZ=90 : X=1
  114. Locate 13,12 : Pen 3 : Print "M Toggle Music"
  115. Locate 13,14 : Pen 1 : Print " Fire to Play"
  116. MESLOOP:
  117. X=X+1 : Gosub KEYCHECK : If ST=1 Then Return 
  118. If SS=1 Then SS=0 : Return 
  119. Z=Z-1 : ZZ=ZZ+1 : Bob 1,Z,90,2 : Bob 2,ZZ,110,8
  120. Locate 14,16 : Pen 27+Rnd(1*4) : Print "Score :";SC
  121. For XX=1 To 300 : Next XX : If X<130 Then Goto MESLOOP
  122. MESTWO:
  123. X=X-1 : Gosub KEYCHECK : If ST=1 Then Return 
  124. If SS=1 Then SS=0 : Return 
  125. Z=Z+1 : ZZ=ZZ-1 : Bob 1,Z,90,1 : Bob 2,ZZ,110,8
  126. Locate 14,16 : Pen 27+Rnd(1*4) : Print "Score :";SC
  127. For XX=1 To 100 : Next XX : If X>1 Then Goto MESTWO
  128. Return 
  129. CREDITS:
  130. Locate 14,9 : Pen 1 : Print "P A C M A N S"
  131. Locate 15,11 : Pen 3 : Print "R E T U R N"
  132. Locate 14,15 : Pen 6 : Print "By Tony Brice"
  133. Locate 14,17 : Pen 8 : Print "in Amos Basic"
  134. Bob 1,125,100,5 : Bob 2,145,100,6 : Bob 3,165,100,7 : Bob 4,185,100,8 : G=1
  135. CREDIT:
  136. G=G+1 : Gosub KEYCHECK : If ST=1 Then Return 
  137. If SS=1 Then SS=0 : Return 
  138. If G>5000 Then Return 
  139. Goto CREDIT
  140. CLEARBOX:
  141. Ink 0 : Bob Off : Y=72 : Y1=144 : X=93 : X1=233
  142. For G=1 To 35 : Box X,Y To X1,Y1 : X=X+2 : Y=Y+2
  143. For T=1 To 100 : Next T : Next G
  144. X=93 : Y=72 : Y1=144 : X1=233
  145. For G=1 To 72 : Box X,Y To X1,Y1 : X1=X1-1 : Y1=Y1-1
  146. For T=1 To 100 : Next T : Next G : Return 
  147. MUSCHECK:
  148. MM=1-MM : If MM=0 Then Music Off : Return 
  149. Music 1 : Return 
  150. GO:
  151. Gosub CLEARBOX : Screen Hide 0
  152. Music Off : Bob Off : Screen Open 2,320,20,16,Lowres
  153. Curs Off : Flash Off : Hide : Pen 2 : Paper 0 : Cls 0 : SC=0 : LI=3
  154. NEWLOOP:
  155. Screen Open 1,320,224,16,Lowres
  156. Pen 0 : Paper 0 : Cls 0 : Curs Off : Flash Off : Get Sprite Palette 
  157. Screen Display 1,,70,,
  158. Screen 1 : POSITION=Start(2)+(SMAP-1)*247
  159. Cls 0 : Screen Hide 1
  160. ICONY=0 : ZZ=0
  161. For A=0 To 12 : ICONX=0
  162. For B=0 To 18 : Paste Bob ICONX,ICONY,Peek(POSITION+A*19+B)
  163. Add ICONX,16 : MAPDATA(A,B)=Peek(POSITION+A*19+B)
  164. If Peek(POSITION+A*19+B)=24 Then ZZ=ZZ+1
  165. Next B : Add ICONY,16 : Next A : PL=ZZ : Double Buffer 
  166. Gosub SCORESHOW : Screen Show 1 : GP=0 : PMV=1
  167. SEEPACMAN:
  168. DESX=144 : DESY=128 : Y=8 : X=9 : CN=3 : POW=0 : DR=0
  169. EX(1)=126 : EX(2)=144 : EX(3)=161 : PX=144 : PY=128 : EXD(1)=126 : EXD(2)=144 : EXD(3)=161
  170. For T=1 To 3 : EY(T)=97 : EYD(T)=97 : GHOST(T,1)=7+T : GHOST(T,2)=6 : GHOST(T,3)=1
  171. Bob T+1,EX(T),EY(T),T+5 : GHOST(T,5)=0 : Next T : AN=18 : For T=5 To 11
  172. AN=AN-1 : Bob 1,PX,PY,AN : If SOUND=1 Then Sam Play 15,3,T*1000
  173. For G=1 To 2000 : Next G : Next T
  174. If SKILL=0 Then UD=1
  175. If SKILL=1 Then UD=2
  176. MOVEPLAYER:
  177. A$=Inkey$ : If A$="q" Then LI=1 : Goto GAMEOVER
  178. If A$="p" Then G=1 : Gosub PAUSE
  179. If A$="l" and CHEAT=1 Then Goto FINISHLEVEL
  180. If A$="C" Then CHEAT=1-CHEAT : Gosub SCORESHOW
  181. If A$="s" Then SOUND=1-SOUND : Sam Play 15,3,12000
  182. If GP=PL Then Goto FINISHLEVEL
  183. If POW>0 Then POW=POW-1 : POWP=POWP+1 : If POWP>10 Then POWP=1 : If SOUND=1 Then Sam Play 3,4,12000
  184. If POW<1 Then GHOST(1,5)=0 : GHOST(2,5)=0 : GHOST(3,5)=0
  185. If EG>2 Then POW=0
  186. ZX=1 : If SKILL=1 Then ZX=2
  187. If POW>0 Then ZX=4
  188. If DESX=PX and DESY=PY Then Goto CHECKMOVE
  189. If DESX>PX Then PX=PX+ZX : Goto MOVEENEMY
  190. If DESX<PX Then PX=PX-ZX : Goto MOVEENEMY
  191. If DESY>PY Then PY=PY+ZX : Goto MOVEENEMY
  192. If DESY<PY Then PY=PY-ZX : Goto MOVEENEMY
  193. CHECKMOVE:
  194. If X<1 and Jleft(1) Then WP=1 : Gosub WARP
  195. If X<1 and DR=3 Then WP=1 : Gosub WARP
  196. If X>17 and DR=4 Then WP=2 : Gosub WARP
  197. If X>17 and Jright(1) Then WP=2 : Gosub WARP
  198. If MAPDATA(Y,X)=24 Then SC=SC+1 : GP=GP+1 : Gosub CLEAR : If SOUND=1 Then Sam Play 12,6,9000
  199. If MAPDATA(Y,X)=25 Then Gosub CLEAR : POW=400 : For G=1 To 3 : GHOST(G,5)=1 : Next G : EG=0 : If SOUND=1 Then Sam Play 12,5,7000
  200. PUP=MAPDATA(Y-1,X) : PDOWN=MAPDATA(Y+1,X)
  201. If X>0 Then PLEFT=MAPDATA(Y,X-1)
  202. If X<18 Then PRIGHT=MAPDATA(Y,X+1)
  203. If Jup(1) and PUP<>23 Then DESY=DESY-16 : Y=Y-1 : CN=3 : DR=1 : Goto MOVEENEMY
  204. If Jdown(1) and PDOWN<>23 Then DESY=DESY+16 : Y=Y+1 : CN=4 : DR=2 : Goto MOVEENEMY
  205. If Jleft(1) and PLEFT<>23 Then DESX=DESX-16 : X=X-1 : CN=2 : DR=3 : Goto MOVEENEMY
  206. If Jright(1) and PRIGHT<>23 Then DESX=DESX+16 : X=X+1 : CN=1 : DR=4 : Goto MOVEENEMY
  207. If STYLE=1 Then Goto MOVEENEMY
  208. If DR=1 and PUP<>23 Then DESY=DESY-16 : Y=Y-1 : CN=3
  209. If DR=1 and PUP=23 Then DR=0
  210. If DR=2 and PDOWN<>23 Then DESY=DESY+16 : Y=Y+1 : CN=4
  211. If DR=2 and PDOWN=23 Then DR=0
  212. If DR=3 and PLEFT<>23 Then DESX=DESX-16 : X=X-1 : CN=2
  213. If DR=3 and PLEFT=23 Then DR=0
  214. If DR=4 and PRIGHT<>23 Then DESX=DESX+16 : X=X+1 : CN=1
  215. If DR=4 and PRIGHT=23 Then DR=0
  216. MOVEENEMY:
  217. Bob 1,PX,PY,CN : For T=1 To 3
  218. If POW>0 and GHOST(T,5)=1 Then Bob T+1,EX(T),EY(T),9
  219. If Bob Col(T+1) and Bob Col(1) and GHOST(T,5)=1 Then Gosub ZAP : Goto MOVEME
  220. If Bob Col(T+1) and Bob Col(1) and GHOST(T,5)=0 and CHEAT=0 Then Goto GAMEOVER
  221. MOVEME:
  222. If EXD(T)=EX(T) and EYD(T)=EY(T) Then Goto ENEMYMOVE
  223. If EXD(T)>EX(T) Then EX(T)=EX(T)+UD
  224. If EXD(T)<EX(T) Then EX(T)=EX(T)-UD
  225. If EYD(T)>EY(T) Then EY(T)=EY(T)+UD
  226. If EYD(T)<EY(T) Then EY(T)=EY(T)-UD
  227. Goto MOVEOVER
  228. WARP:
  229. If SOUND=1 Then Sam Play 3,7,12000
  230. If WP=1 Then PX=288 : X=18 : DESX=PX : Return 
  231. PX=0 : X=0 : DESX=0 : Return 
  232. ENEMYMOVE:
  233. If GHOST(T,1)<1 Then WP=1 : Gosub GHOSTWARP
  234. If GHOST(T,1)>17 Then WP=2 : Gosub GHOSTWARP
  235. If GHOST(T,1)>0 and GHOST(T,1)<18 and GHOST(T,5)=0 Then Gosub SEARCH
  236. XX=GHOST(T,1) : YY=GHOST(T,2)
  237. UP=0 : DWN=0 : RIGHT=0 : LEFT=0
  238. If MAPDATA(YY-1,XX)<>23 Then UP=1
  239. If MAPDATA(YY+1,XX)<>23 Then DWN=1
  240. If MAPDATA(YY,XX+1)<>23 Then RIGHT=1
  241. If MAPDATA(YY,XX-1)<>23 Then LEFT=1
  242. If GHOST(T,4)=1 Then Goto MOVEEND
  243. Randomize Timer : C=Rnd(1*3)+1
  244. If C=4 Then Goto MOVEEND
  245. If GHOST(T,3)>2 Then Goto NEWSUB
  246. If LEFT=1 and GHOST(T,1)>X and GHOST(T,5)=0 Then GHOST(T,3)=4
  247. If RIGHT=1 and GHOST(T,1)<X and GHOST(T,5)=0 Then GHOST(T,3)=3
  248. If LEFT=1 and GHOST(T,1)=X and C=1 and POW=0 Then GHOST(T,3)=4
  249. If RIGHT=1 and GHOST(T,1)=X and C=2 and POW=0 Then GHOST(T,3)=3
  250. If LEFT=0 and DWN=0 Then GHOST(T,3)=3
  251. If RIGHT=0 and DWN=0 Then GHOST(T,3)=4
  252. If LEFT=0 and UP=0 Then GHOST(T,3)=3
  253. If RIGHT=0 and UP=0 Then GHOST(T,3)=4
  254. If GHOST(T,3)=1 and UP=0 Then GHOST(T,3)=2
  255. If GHOST(T,3)=2 and DWN=0 Then GHOST(T,3)=1
  256. If UP=0 and DWN=0 and LEFT=0 Then GHOST(T,3)=3
  257. If UP=0 and DWN=0 and RIGHT=0 Then GHOST(T,3)=4
  258. Goto MOVEEND
  259. NEWSUB:
  260. If UP=1 and GHOST(T,2)>Y and GHOST(T,5)=0 Then GHOST(T,3)=1
  261. If DWN=1 and GHOST(T,2)<Y and GHOST(T,5)=0 Then GHOST(T,3)=2
  262. If UP=1 and GHOST(T,2)=Y and C=1 and POW=0 Then GHOST(T,3)=1
  263. If DWN=1 and GHOST(T,2)=Y and C=2 and POW=0 Then GHOST(T,3)=2
  264. If LEFT=0 and DWN=0 Then GHOST(T,3)=1
  265. If RIGHT=0 and DWN=0 Then GHOST(T,3)=1
  266. If LEFT=0 and UP=0 Then GHOST(T,3)=2
  267. If RIGHT=0 and UP=0 Then GHOST(T,3)=2
  268. If GHOST(T,3)=3 and RIGHT=0 Then GHOST(T,3)=4
  269. If GHOST(T,3)=4 and LEFT=0 Then GHOST(T,3)=3
  270. If LEFT=0 and RIGHT=0 and UP=0 Then GHOST(T,3)=2
  271. If LEFT=0 and RIGHT=0 and DWN=0 Then GHOST(T,3)=1
  272. MOVEEND:
  273. If GHOST(T,3)=1 and UP=1 Then EYD(T)=EYD(T)-16 : GHOST(T,2)=GHOST(T,2)-1
  274. If GHOST(T,3)=2 and DWN=1 Then EYD(T)=EYD(T)+16 : GHOST(T,2)=GHOST(T,2)+1
  275. If GHOST(T,3)=3 and RIGHT=1 Then EXD(T)=EXD(T)+16 : GHOST(T,1)=GHOST(T,1)+1
  276. If GHOST(T,3)=4 and LEFT=1 Then EXD(T)=EXD(T)-16 : GHOST(T,1)=GHOST(T,1)-1
  277. MOVEOVER:
  278. Bob T+1,EX(T),EY(T),T+5 : Next T : Goto MOVEPLAYER
  279. GHOSTWARP:
  280. If SOUND=1 Then Sam Play 3,6,12000
  281. If WP=1 Then EX(T)=288 : GHOST(T,1)=17 : EXD(T)=272 : Return 
  282. EX(T)=0 : GHOST(T,1)=1 : EXD(T)=16 : Return 
  283. ZAP:
  284. Bob T+1,EX(T),EY(T),20 : EG=EG+1
  285. SC=SC+30*T : GHOST(T,1)=9 : GHOST(T,2)=6 : EX(T)=144 : EXD(T)=144
  286. EY(T)=97 : EYD(T)=97 : GHOST(T,3)=1 : GHOST(T,5)=0
  287. For G=1 To 2000 : Next G : If SOUND=1 Then Sam Play 3,5,5000
  288. For G=1 To 2000 : Next G
  289. Gosub SCORESHOW : Bob T+1,EX(T),EY(T),T+7 : Return 
  290. SEARCH:
  291. GHOST(T,4)=0
  292. YY=GHOST(T,2) : XX=GHOST(T,1)
  293. Repeat 
  294. If YY=Y and XX=X Then GHOST(T,3)=1 : GHOST(T,4)=1
  295. YY=YY-1
  296. Until MAPDATA(YY,XX)=23
  297. YY=GHOST(T,2) : XX=GHOST(T,1)
  298. Repeat 
  299. If YY=Y and XX=X Then GHOST(T,3)=2 : GHOST(T,4)=1
  300. YY=YY+1
  301. Until MAPDATA(YY,XX)=23
  302. XX=GHOST(T,1) : YY=GHOST(T,2)
  303. Repeat 
  304. If XX=X and YY=Y Then GHOST(T,3)=3 : GHOST(T,4)=1
  305. XX=XX+1
  306. Until MAPDATA(YY,XX)=23 or XX=18
  307. XX=GHOST(T,1) : YY=GHOST(T,2)
  308. Repeat 
  309. If XX=X and YY=Y Then GHOST(T,3)=4 : GHOST(T,4)=1
  310. XX=XX-1
  311. Until MAPDATA(YY,XX)=23 or XX=0
  312. Return 
  313. CLEAR:
  314. MAPDATA(Y,X)=1 : Paste Bob PX,PY,22 : Gosub SCORESHOW : Return 
  315. SCORESHOW:
  316. Screen 2 : Locate 3,0 : Pen 2 : Paper 0
  317. Print "Sc =";SC;"  Li =";LI;"  Lev = ";
  318. If SKILL=0 Then Print "E";
  319. If SKILL=1 Then Print "H";
  320. Print "  Scr = ";Mid$(FF$,SMAP,1);" ";
  321. Locate 0,1 : Centre "             "
  322. If CHEAT=1 Then Locate 0,1 : Centre "Cheat mode on"
  323. Screen 1 : Return 
  324. FINISHLEVEL:
  325. Bob Off : Ink 0 : Paper 15 : SC=SC+100 : X=0 : Y=0 : X1=304 : Y1=210
  326. For T=1 To 50
  327. Box X,Y To X1,Y1
  328. X=X+2 : Y=Y+2 : X1=X1-2 : Y1=Y1-2
  329. Next T
  330. Pen 1 : Locate ,10 : Centre "Way to go !!!"
  331. Pen 2 : Locate ,12 : Centre "Next level coming up!"
  332. M=1
  333. LEVELFIRE:
  334. M=M+1 : If M>10000 Then Screen Close 1 : Goto NEWSCREEN
  335. If Fire(1) Then Screen Close 1 : Goto NEWSCREEN
  336. Goto LEVELFIRE
  337. NEWSCREEN:
  338. SMAP=SMAP+1
  339. If SMAP>10 and SM=1 Then SKILL=SKILL+1 : SMAP=1 : If SKILL>1 Then SKILL=1
  340. If SMAP>20 and SM=2 Then SKILL=SKILL+1 : SMAP=11 : If SKILL>1 Then SKILL=1
  341. Goto NEWLOOP
  342. PAUSE:
  343. If SOUND=1 Then Sam Play 15,5,MUS(G)*1000
  344. For GG=1 To 500
  345. A$=Inkey$ : If A$="p" Then P=1
  346. If Fire(1) Then P=1
  347. Next GG : If P=1 Then P=0 : Return 
  348. G=G+1 : If G<8 Then Goto PAUSE
  349. G=1 : For GG=1 To 10000
  350. A$=Inkey$ : If A$="p" Then P=1
  351. If Fire(1) Then P=1
  352. Next GG : If P=1 Then P=0 : Return 
  353. Goto PAUSE
  354. GAMEOVER:
  355. AN=11 : For T=11 To 5 Step -1 : AN=AN+1
  356. Bob 1,PX,PY,AN : If SOUND=1 Then Sam Play 15,3,T*1000
  357. For G=1 To 3000 : Next G
  358. Next T : LI=LI-1 : X=9 : Y=8 : DESX=144 : DESY=128 : PX=144 : PY=128
  359. POW=0 : For G=1 To 3 : GHOST(G,5)=0 : Next G : EG=0 : Gosub SCORESHOW
  360. For SR=70 To 350 : Screen Display 1,,SR,, : For GR=1 To 200 : Next GR : Next SR
  361. If LI<1 Then Goto OUT
  362. For SR=350 To 70 Step -1 : Screen Display 1,,SR,, : For GR=1 To 200 : Next GR : Next SR : Goto SEEPACMAN
  363. OUT:
  364. Screen Close 1 : Screen Close 2 : Screen Show 0 : Bob Off : Screen 0
  365. For SR=350 To 45 Step -1 : Screen Display 0,,SR,, : For GR=1 To 200 : Next GR
  366. Next SR
  367. If SM=1 Then SMAP=1
  368. If SM=2 Then SMAP=11
  369. Gosub SEESET
  370. Pen 1 : Locate 12,13 : Print "G A M E   O V E R" : Sam Play 15,8,9000
  371. For T=1 To 40000 : Next T
  372. Gosub CLEARBOX : If SC<HI(5) Then Goto TITLE
  373. If CHEAT=1 Then Goto TITLE
  374. If MM=1 Then Track Play 4 : Track Loop On 
  375. Locate 12,10 : Print " Enter your name "
  376. Locate 12,11 : Print " --------------- "
  377. Locate 12,12 : Print "A B C D E F G H I"
  378. Locate 12,13 : Print "J K L M N O P Q R"
  379. Locate 12,14 : Print "S T U V W X Y Z r"
  380. Locate 12,15 : Print "    E N T E R    "
  381. XP=91 : YP=93 : CH=1 : X$="" : ZZ=0 : N$="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
  382. EXT=0 : X=1 : Y=1
  383. CYCLE:
  384. Locate 16,16 : Pen 3 : Print SC;" ";X$;" "
  385. If Jdown(1) and Y=3 Then XX=CH : ZZ=1 : Goto ENTERMODE
  386. If ZZ=1 Then Goto ENTERMODE
  387. If Jleft(1) and X>1 Then CH=CH-1 : XP=XP-16 : X=X-1
  388. If Jright(1) and X<9 Then CH=CH+1 : XP=XP+16 : X=X+1
  389. If Jup(1) and Y>1 Then CH=CH-9 : YP=YP-8 : Y=Y-1
  390. If Jdown(1) and Y<3 Then CH=CH+9 : YP=YP+8 : Y=Y+1
  391. Pen 1 : Locate 12,15 : Print "    E N T E R    " : Bob 1,XP,YP,19
  392. If Fire(1) Then Gosub CHECKHIGHFIRE
  393. For T=1 To 2000 : Next T : Goto CYCLE
  394. ENTERMODE:
  395. Bob Off : Pen 3 : Locate 12,15 : Print "    E N T E R"
  396. If Jup(1) Then CH=XX : ZZ=0 : Goto CYCLE
  397. If Fire(1) Then Gosub CLEARBOX : Goto RESULT
  398. Goto ENTERMODE
  399. CHECKHIGHFIRE:
  400. If CH=27 Then X$=Left$(X$,Len(X$)-1) : Return 
  401. If CH=28 Then EXT=1 : Return 
  402. If Len(X$)=4 Then Return 
  403. X$=X$+Mid$(N$,CH,1) : Return 
  404. RESULT:
  405. If X$="" Then X$="ANON"
  406. If MM=1 Then Track Stop 
  407. If SC<=HI(4) Then HI(5)=SC : HI$(5)=X$ : Goto TITLE
  408. X=6 : For T=5 To 1 Step -1 : If SC>HI(T) Then X=X-1 : Next T
  409. For T=5 To X Step -1 : HI(T)=HI(T-1) : HI$(T)=HI$(T-1) : Next T
  410. HI(X)=SC : HI$(X)=X$ : Goto TITLE
  411.